package com.swotxu.ribbonserver;

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

/**
 * Eureka 服务
 *
 * @Date: 2020/6/25 22:32
 * @Author: swotXu
 */
@SpringBootApplication
@EnableEurekaServer // 声明这是一个 Eureka 服务器
public class CloudRibbonServer {

    public static void main(String[] args) {
        /*
            以下两种写法都可以，
            1、SpringApplication.run(HealthHandlerServer.class, args)
            内部会创建当前对象实例，并调用其run方法,源码如下：
                (new SpringApplication(sources)).run(args);

            2、new SpringApplicationBuilder(HealthHandlerServer.class).run(args);
            在创建SpringApplicationBuilder对象的时候，我们查看源码会发现，它内部
            其实依旧是创建了SpringApplication对象，源码如下：
                new SpringApplication(sources);
            当调用其run方法时，最终还是委托给了SpringApplication。

            由此可见，虽然写法不同，但实际上殊途同归。
            同时，SpringApplicationBuilder提供给了我们一定的扩展能力，这个咱们后面再说
         */
//        SpringApplication.run(HealthHandlerServer.class, args);
        new SpringApplicationBuilder(CloudRibbonServer.class).run(args);
    }
}
